#!/usr/bin/
# -*- encoding: utf-8 -*-
'''
@File    :   深浅拷贝.py
@Contact :   tt_candy@outlook.com
@License :   None

@Modify Time      @Author    @Version    @Desciption
------------      -------    --------    -----------
20/12/20 7:15   ttcandy      1.0         None
'''

#浅拷贝，a添加第一层，b不跟随变化
a=[1,3,42,7,[]]
b=a.copy()
a.append(55)
print(a)
print(b)


#浅拷贝，a添加第二层元素，b跟随添加
a=[1,3,42,7,[]]
b=a.copy()
a[-1].append(55)
print(a)
print(b)


#浅拷贝，a修改第二层元素，b不跟随变化
a=[1,3,42,7,[]]
b=a.copy()
a[-1]=20
print(a)
print(b)

#浅拷贝，第一层和第二层内存地址比较
a=[1,3,42,7,[]]
b=a.copy()
a[-1].append(55)

print(a)
print(b)
print(id(a))
print(id(b))
print(id(a[-1]))
print(id(b[-1]))

#浅拷贝，a修改第二层时，内存地址也发生了改变
a=[1,3,42,7,[]]
b=a.copy()
a[-1]=20

print(a)
print(b)
print(id(a[-1]))
print(id(b[-1]))


#深浅拷贝比较元素变化
import copy

a=[1,2,3,4,["m","n"]]
b=a
c=copy.copy(a)              #浅拷贝
d=copy.deepcopy(a)          #深拷贝
a.append(5)
a[4].append("c")
print ("a= ",a)
print ("b= ",b)
print ("c= ",c)
print ("d= ",d)